home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / S-Sound and Music / (c)sn.d64 / sidpic v3.4 (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  12KB  |  227 lines

  1. 10 POKE52,PEEK(46)+8:POKE56,PEEK(52):CLR
  2. 11 A1$="ABCDEFGHIJKLMNOPQ":A1$=A1$+A1$+A1$+A1$+A1$:A1$=A1$+A1$+A1$
  3. 12 DEF FNH(X)=INT(X/256)
  4. 13 DEF FNL(X)=X-256*FNH(X)
  5. 14 BL$="                                        ":C$=CHR$(.):P1=0
  6. 15 SA=780:SX=781:SY=782:SP=783:POKESA,1:POKESX,8:POKESY,1:SYS 65466
  7. 16 POKE53281,0:POKE53280,11:POKE650,128
  8. 17 PRINT"[147]"CHR$(142);:GOSUB59
  9. 18 PRINT" CAN PLAY ALL CURRENT SIDPLAYER FILES"
  10. 19 PRINT" AS USED WITH KPLAY, MPLAY, SINGALONG"
  11. 20 PRINT" AND OTHER COMPARABLE SIDPLAYERS."
  12. 21 PRINT" USES SID MUSIC AND RELATED FILES:"
  13. 22 PRINT" [158].MUS (MUSIC FILES), [153]WITH..."
  14. 23 PRINT" [158].WDS (WORD FILES)   [153]AND/OR..."
  15. 24 PRINT" [158].PIC (KOALA/DOODLE & B/W PICTURES)"
  16. 25 PRINT " THE BASIC SIDPLAYER IS FROM COMPUTE'S"
  17. 26 PRINT " "CHR$(34)"ALL ABOUT THE COMMODORE 64, VOL. TWO"CHR$(34)
  18. 27 PRINT " BY CRAIG CHAMBERLAIN   -  (C) COMPUTE!"
  19. 28 PRINT "      [154][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]"
  20. 29 PRINT "      HIT SPACE TO READ DIRECTORY[146][187]"
  21. 30 PRINT "      [188][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][146][190]"
  22. 31 PRINT "[151].(C)1986,1987 OKAY TO COPY, NOT TO SEL.[157]"CHR$(148)"L"
  23. 32 SS=12288:HK=SS+274:PL=SS+297:DP=SS+471:SV=PEEK(55)+PEEK(56)*256:MA=0
  24. 33 SYS10638
  25. 34 REM ***** NEXT SCREEN PAGE
  26. 35 NP=0
  27. 36 PRINT"[147][158][213][192][192][192][192][192][192][192][192][192][192][192][192][178][192][192][192][192][192][192][192][192][192][192][192][192][178][192][192][192][192][192][192][192][192][192][192][192][201][157][157]"CHR$(148)"[192]"
  28. 37 FORA=1TO17:PRINT"[221]"SPC(12)"[221]"SPC(12)"[221]"SPC(11)"[221][157]"CHR$(148):NEXT
  29. 38 PRINT"[202][192][192][192][192][192][192][192][192][192][192][192][192][177][192][192][192][192][192][192][192][192][192][192][192][192][177][192][192][192][192][192][192][192][192][192][192][192][203][157][157]"CHR$(148)"[192]":GOSUB59
  30. 39 PRINT"[154]EXIT: F7  REPLAY: * [221]"
  31. 40 PRINT"[154]PLAY ONE:F1/[154]PLAY FROM:F3/[154]NEW DISK:F5[221]":GOTO67
  32. 41 PRINT"[147][158][213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201][157][157]"CHR$(148)"[192]"
  33. 42 FORA=1TO9:PRINT"[221]"SPC(37)"[221][157]"CHR$(148):NEXT
  34. 43 PRINT"[171][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][179][157][157]"CHR$(148)"[192]"
  35. 44 PRINT"[221] NOTES:F1/NEXTSONG:F3/MENU:F5/EXIT:F7[158][221][157]";CHR$(148)" [158]"
  36. 45 PRINT"[171][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][179][157][157]"CHR$(148)"[192]"
  37. 46 FOR A=1 TO 5:PRINT"[221]"SPC(37)"[221][157]"CHR$(148):NEXT
  38. 47 PRINT"[202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203][157][157]"CHR$(148)"[192]":GOSUB59:RETURN
  39. 48 REM ***** MUSIC KEYBOARD DISPLAY
  40. 49 POKESS+5,7:POKESS+6,2:POKESS+7,14
  41. 50 V=53248:POKEV+23,7:POKEV,0:POKEV+2,0:POKEV+4,0:POKEV+16,0:POKEV+21,7
  42. 51 PRINT"[145][161][146][167][167][199][146][167][167][167][199][146][167][167][199][146][167][167][167][199][146][167][167][199][146][167][167][167][199][146][167][167][199][146][167][167][167][146][165]"
  43. 52 PRINT"[161][146][167][167][199][146][167][167][167][199][146][167][167][199][146][167][167][167][199][146][167][167][199][146][167][167][167][199][146][167][167][199][146][167][167][167][146][165]"
  44. 53 PRINT"[161][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][146][165]"
  45. 54 PRINT"[161][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][146][165]"
  46. 55 PRINT"[161][146][167][167][199][146][167][167][167][199][146][167][167][199][146][167][167][167][199][146][167][167][199][146][167][167][167][199][146][167][167][199][146][167][167][167][146][165]"
  47. 56 PRINT"[161][146][167][167][199][146][167][167][167][199][146][167][167][199][146][167][167][167][199][146][167][167][199][146][167][167][167][199][146][167][167][199][146][167][167][167][146][165]"
  48. 57 PRINT"[161][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][146][165]"
  49. 58 PRINT"[161][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][146][165]":RETURN
  50. 59 PRINT" [213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]"
  51. 60 PRINT" [221]           [213][201][154][178][159][176][201]  [187][159][178][201][154][178][213][201]        V3.4[221]
  52. 61 [153]" (null)           MID$RIGHT$CONT(null)OPEN(null)(null) SINWAIT OPEN-(null)CONT(null)(null)             (null)
  53. 62 PRINT" [221]           [202][203][154][177][159][173][203][188]  [159][177] [154][177][202][203]            [221]
  54. 63 [153]" (null) CONTTHE SIDPLAYER ART AND MUSIC REVIEW (null)
  55. 64 PRINT" [202][192][192][192][192][192][192][192][201] K[159]E[156]RMI[158]T [129]R. [149]W[150]O[152]O[153]D[154]A[155]L[153]L [213][192][192][192][192][192][192][192][192][203]"
  56. 65 PRINT"[202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203]":RETURN
  57. 66 REM ***** PRINTOUT DIR
  58. 67 CL=5:PRINT ""
  59. 68 GOTO192
  60. 69 SYS9960:
  61. 70 REM ***** GET SONG TITLE
  62. 71 SYS10008
  63. 72 LA=SV
  64. 73 PRINT"";:F1=FRE(0):F$="":F1=1024+(40*7)+1:V0=7:H0=1
  65. 74 POKEF1,PEEK(F1)+128
  66. 75 POKEF1,PEEK(F1)-128:F1=1024+(V0*40)+H0:POKEF1,PEEK(F1)+128
  67. 76 SYS10054:GET A$:IFA$=""THENV0=V0+1:IFV0>23THENV0=7
  68. 77 IFA$="[145]"THENV0=V0-1:IFV0<7THENV0=23
  69. 78 IFA$=""THENH0=H0+13:IFH0>27THENH0=1
  70. 79 IFA$="[157]"THENH0=H0-13:IFH0<1THENH0=27
  71. 80 IFA$=""THENV0=7:H0=1
  72. 81 IFA$="[135]" GOTO35
  73. 82 IFA$="[137]"THENNP=NP+K:GOTO36
  74. 83 IFA$="[134]" GOTO100
  75. 84 IFA$="[136]"THENPOKE53280,14:POKE 53281,6:PRINT"[147][154]";:GOTO235
  76. 85 IFA$="*" GOTO94
  77. 86 IFA$=CHR$(13) GOTO90
  78. 87 IFA$=CHR$(141)THENGOSUB121:CL=13:GOTO74
  79. 88 IFPEEK(654)=5THENIFPEEK(197)=5GOTO108
  80. 89 IFA$<>"[133]" GOTO75
  81. 90 POKEF1,PEEK(F1)-128
  82. 91 SYS9912:
  83. 92 POKE198,0:GOSUB116:GOSUB127:GOTO69
  84. 93 REM ***** REPLAY LAST MUSIC
  85. 94 POKEF1,PEEK(F1)-128:SYS9912:
  86. 95 IFMA<SV GOTO71
  87. 96 A$="":IFWDSTHENWT=WA:GOSUB172:POKE700,1
  88. 97 IFPICTHENGOSUB189
  89. 98 HI=FNH(MA):LO=FNL(MA):GOSUB132:GOTO69
  90. 99 REM ***** F3 PLAY ALL MUSIC-FROM
  91. 100 POKEF1,PEEK(F1)-128:POKE703,V0:POKE704,H0
  92. 101 FOR V0=V0 TO 23:FOR H0=H0 TO 27 STEP 13:F$="":F1=1024+(V0*40)+H0:LA=SV
  93. 102 SYS9912:
  94. 103 IF(PEEK(F1+54272)AND15)=CLTHENGOSUB116:GOSUB127
  95. 104 SYS9960:
  96. 105 NEXT:H0=1:NEXT:IFPEEK(654)=1THENV0=PEEK(703):H0=PEEK(704):GOTO101
  97. 106 GOTO69
  98. 107 REM ***** C=F3 (null) MUSIC FILES
  99. 108 POKEF1,PEEK(F1)-128
  100. 109 FOR V0=7 TO 23:FOR H0=1 TO 27 STEP 13:F$="":F1=1024+(V0*40)+H0:LA=SV
  101. 110 SYS9912:
  102. 111 IF(PEEK(F1+54272)AND15)=13THENGOSUB116:GOSUB114
  103. 112 SYS9960:
  104. 113 NEXT:NEXT:GOTO35
  105. 114 CLOSE15:OPEN15,8,15,"S0:"+F$+".???":PRINT#15,"I0:":CLOSE15:RETURN
  106. 115 REM ***** GET MUSIC FILENAME
  107. 116 F$="":FG=0:FOR X=F1+11 TO F1 STEP-1:A=PEEK(X):IFFG=0THENIFA=32 GOTO118
  108. 117 FG=1:F$=CHR$(A+ABS(64*(A<32)))+F$:POKEX,A+128:POKEX+54272,1
  109. 118 NEXT:FOR X=F1+11 TO F1 STEP-1:IFPEEK(X)>128THENPOKEX,PEEK(X)-128
  110. 119 NEXT:RETURN
  111. 120 REM ***** COLOR NAME
  112. 121 POKEF1,PEEK(F1)-128
  113. 122 FG=0:FOR X=F1+11 TO F1 STEP-1:A=PEEK(X):IFFG=0THENIFA=32 GOTO124
  114. 123 FG=1:POKEX,A+128:POKEX+54272,(PEEK(X+54272)+8) AND 15
  115. 124 NEXT:FOR X=F1+11 TO F1 STEP-1:IFPEEK(X)>128THENPOKEX,PEEK(X)-128
  116. 125 NEXT:RETURN
  117. 126 REM ***** LOAD MUSIC @FRE MEM
  118. 127 IFF$=""THENRETURN
  119. 128 GOSUB162:GOSUB176
  120. 129 MA=LA:HI=FNH(MA):LO=FNL(MA):F$=F$+".MUS":GOSUB203
  121. 130 IFPEEK(SP)AND1 GOTO208
  122. 131 REM ***** HOOK INTO INTERRUPT
  123. 132 SYS HK:POKE SX,LO:POKE SY,HI:SYS PL:F=PEEK(SX)+256*PEEK(SY):F$="":FS=F
  124. 133 REM ***** PRINT CREDIT BLOCK
  125. 134 IFPICTHENSYS9676::GOSUB189:GOTO141
  126. 135 F$="":GOSUB41:PRINT"";SPC((40-LEN(T$))/2-1);T$
  127. 136 IFWDS=0THENGOSUB48
  128. 137 PRINT"[154]";:P=-1:L=0
  129. 138 F=F+P+1:POKE113,FNL(F):POKE114,FNH(F)
  130. 139 SYS9874::P=PEEK(142):L=L+1:A=PEEK(F+P)
  131. 140 IFL<6THENIFATHENPRINT"";LEFT$(A1$,P+1);:IFMID$(A1$,P+1,1)<>C$GOTO138
  132. 141 SYS11246:WAIT 56320,16:POKE 198,0:POKE SS,7
  133. 142 REM ***** WAIT UNTIL FINISHED
  134. 143 SYS10054:IFPEEK(198) GOTO151
  135. 144 IFWDSTHENGOSUB221:GOTO146
  136. 145 GOSUB231
  137. 146 IFPEEK(SS)AND 7 GOTO143
  138. 147 GOSUB157
  139. 148 POKEV+5,0:POKEV+7,0:POKEV+9,0
  140. 149 IFA$="[135]"THENA$="":GOTO35
  141. 150 RETURN
  142. 151 GETA$:POKE198,0:POKESS,0
  143. 152 IFA$="[133]"THENIFP1=0THENGOSUB159:P1=PI:T$="":F=FS:PI=0:WD=0:POKESS,7:GOTO134
  144. 153 IFA$="[133]"THENIFP1THENPI=P1:P1=0:POKESS,7:POKEV+21,0:GOTO134
  145. 154 IFA$="[136]"THENGOSUB157:GOTO69
  146. 155 IFA$="P"THENA=PEEK(54296):POKE54296,0:WAIT198,1:GETA$:POKESS,7:POKE54296,A:GOTO143
  147. 156 GOTO147
  148. 157 GOSUB159:POKE53269,0:POKE54276,0:POKE54283,0:POKE54290,0:SYSDP:RETURN
  149. 158 RETURN
  150. 159 SYS11334:SYS9809::POKE700,0
  151. 160 RETURN
  152. 161 REM ***** LOAD WORD FILE
  153. 162 POKE700,0:T$="":WD=0:OPEN1,8,8,F$+".WDS,P":GET#1,A$,B$:IFSTTHENCLOSE1:RETURN
  154. 163 CLOSE1:WD=1:WA=LA:T$=A$+B$
  155. 164 F$=F$+".WDS":HI=FNH(LA):LO=FNL(LA):GOSUB203
  156. 165 IFPEEK(SP)AND1 GOTO208
  157. 166 POKE700,1
  158. 167 LA=PEEK(SX)+PEEK(SY)*256:WT=WA:FOR A=LA TO LA+5:POKE A,13:NEXT:LA=LA+5
  159. 168 F$=LEFT$(F$,LEN(F$)-4):POKE113,FNL(WA):POKE114,FNH(WA)
  160. 169 SYS9874::A=PEEK(142)
  161. 170 T$=T$+LEFT$(A1$,A)
  162. 171 WA=WA+A+1:WT=WA
  163. 172 POKE113,FNL(WT):POKE114,FNH(WT)
  164. 173 SYS9874::A=PEEK(142)
  165. 174 SYS10013:W2$=LEFT$(A1$,A):WT=WT+A+1
  166. 175 RETURN
  167. 176 REM ***** CHECK FOR PICTURE
  168. 177 PIC=0:P1=0:OPEN1,8,8,F$+".PIC":GET#1,A$,B$:IF(ST AND 64)THENCLOSE1:RETURN
  169. 178 CLOSE1:A=ASC(B$+C$)
  170. 179 IFA=96THENPIC=1:GOTO182
  171. 180 IFA=92THENPIC=2:GOTO182
  172. 181 PIC=3
  173. 182 POKE 665,PIC:HI=96:LO=0:F$=F$+".PIC":GOSUB203:REM PICS @ $6000
  174. 183 IFPEEK(SP)AND1 GOTO208
  175. 184 F$=LEFT$(F$,LEN(F$)-4):ON PIC GOTO185,186,187
  176. 185 SYS10980:GOTO188
  177. 186 SYS11061:GOTO188
  178. 187 SYS11118:GOTO188
  179. 188 RETURN
  180. 189 IFWDS=0THENRETURN
  181. 190 SYS11523:PRINT SPC((40-LEN(T$))/2)""T$:POKE700,2:RETURN
  182. 191 REM ***** WHAT FILES ON DISK
  183. 192 FOR F=1 TO 4:POKE 580+F,ASC(MID$(".MUS",F)):NEXT
  184. 193 OPEN 1,8,0,"$0:*=P":GET #1,S$,S$:PRINT "";:TB=1:K=0
  185. 194 IFNP>0THENPOKE2,5:FOR A=1 TO NP:SYS9579::NEXT
  186. 195 POKE2,0:SYS9579::TB=TB+13:PRINT TAB(TB);:IFTB=40THENTB=1:PRINT "";
  187. 196 IFST=0THENK=K+1:IFK<51 GOTO195
  188. 197 IFK=0THENP$="NO MUSIC ON DISK!":GOTO211
  189. 198 POKE2,5:SYS9579:
  190. 199 IFST=0THENPRINT""SPC(12)"F2 - NEXT PAGE"
  191. 200 CLOSE1:SYS65484
  192. 201 GOTO71
  193. 202 REM ***** MUSIC FILE LOADER
  194. 203 POKESA,1:POKESX,8:POKESY,0:SYS65466
  195. 204 FOR F=1 TO LEN(F$):POKE 584+F,ASC(MID$(F$,F)):NEXT
  196. 205 POKE SA,LEN(F$):POKE SX,73:POKE SY,2:SYS 65469
  197. 206 POKESA,0:POKESX,LO:POKESY,HI:SYS65493:RETURN
  198. 207 REM ***** ERROR MESSAGES
  199. 208 P=PEEK(SA):P$="ERROR: ":IFP=4THENP$=P$+"FILE NOT FOUND":GOTO211
  200. 209 IFP=5THENP$=P$+"DEVICE NOT PRESENT":GOTO211
  201. 210 P$=P$+STR$( ST )
  202. 211 SYS9809:
  203. 212 A=LEN(P$):S=19-(A/2):A$="[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
  204. 213 PRINT "[147]";SPC(S);"[213]";LEFT$(A$,A);"[201]"
  205. 214 PRINT SPC(S);"[221]";P$;"[221]"
  206. 215 PRINT SPC(S);"[202]";LEFT$(A$,A);"[203]"
  207. 216 POKE198,0:PRINT SPC(20-4);"[145][179]RETURN[171]":FOR B=1 TO 500:NEXT
  208. 217 PRINT SPC(20-4);"[145][192][192][192][192][192][192][192][192]":FOR B=1 TO 500:NEXT
  209. 218 IFPEEK(198)THENA$="":GET A$:IFA$=CHR$(13)THENRUN
  210. 219 GOTO216
  211. 220 REM ***** DISPLAY WORDS
  212. 221 IFPEEK(SS+1)<1THENRETURN
  213. 222 W1$=W2$:POKE113,FNL(WT):POKE114,FNH(WT)
  214. 223 SYS9874::A=PEEK(142)
  215. 224 SYS10013:WT=WT+A+1
  216. 225 W2$=LEFT$(A1$,A)
  217. 226 IFPIC=0THENPRINT"";:GOSUB229:PRINT"";:GOSUB230:GOTO228
  218. 227 PRINT"";:GOSUB229:GOSUB230
  219. 228 POKESS+1,0:RETURN
  220. 229 PRINT"[153]"W1$;LEFT$(BL$,39-POS(0)):RETURN
  221. 230 PRINT""W2$;LEFT$(BL$,39-POS(0));:POKE212,0:PRINT"":RETURN
  222. 231 REM ***** MUSIC ONLY DISPLAY
  223. 232 IFPIC=0THENSYS10099
  224. 233 RETURN
  225. 234 :
  226. 235 END
  227.